package com.shang.service;

import com.shang.pojo.Items;
import com.shang.pojo.ItemsImg;
import com.shang.pojo.ItemsParam;
import com.shang.pojo.ItemsSpec;
import com.shang.pojo.vo.CommentLevelCountsVO;
import com.shang.pojo.vo.ItemCommentVO;
import com.shang.pojo.vo.ShopCartVO;
import com.shang.utils.PagedGridResult;

import java.util.List;

public interface ItemService {

    /**
     * 根据商品ID 查询详情
     * @param id
     * @return
     */
    public Items queryItemById(String id);

    /**
     * 根据ID查询图片列表
     * @param itemId
     * @return
     */
    public List<ItemsImg> queryItemImgList(String itemId);

    /**
     * 根据ID查询商品规格
     * @param itemId
     * @return
     */
    public List<ItemsSpec> queryItemSpecList(String itemId);

    /**
     * 根据id查询商品属性
     * @param itemId
     * @return
     */
    public ItemsParam queryItemParam(String itemId);


    /**
     * 查询商品评价等级数量
     * @param itemId
     */
    public CommentLevelCountsVO queryCommentCounts(String itemId);


    /**
     * 商品评论
     * @param itemId
     * @param level
     * @return
     */
    public PagedGridResult queryPagedComments(String itemId, Integer level, Integer page, Integer pageSize);


    /**
     * 搜索商品
     * @param keywords
     * @param sort
     * @param page
     * @param pageSize
     * @return
     */
    public PagedGridResult searchItems(String keywords,String sort,Integer page,Integer pageSize);


    public PagedGridResult searchItemsByThirdCat(Integer catId,String sort,Integer page,Integer pageSize);

    /**
     * 渲染购物车中的商品数据
     * @param specIds
     * @return
     */
    public List<ShopCartVO> queryItemsBySpecIds(String specIds);

    public ItemsSpec queryItemSpecById(String specId);

    public String queryItemMainImgById(String itemId);

    /**
     * 扣减库存
     * @param specId
     * @param buyCounts
     */
    public void decreaseItemSpecStock(String specId,int buyCounts);
}
